/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.pi.SmartFast.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
 *
 * @author Alessandro
 */
public class ProdutoDAO {

    Connection conn = null;
    ImagemProduto img = new ImagemProduto();
    
    
    /**Método destinado a gravar informações no banco com objetos do tipo Produto
     *
     */

    public void gravaProduto(Produto produto){

        try{        
         conn = ConexaoBancoDados.getConexaoMySql();//recebe a conexão com o banco de dados
            String sql = "Insert into produtos(Nome,valor_venda,valor_custo,Foto,prod_aVenda," +
                    " estoque,fk_tipo_produto,url)values(?,?,?,?,?,?,?,?)";
            PreparedStatement stm = (PreparedStatement) conn.prepareStatement(sql);//recebe a instrução sql
            stm.setString(1, produto.getNome());//grava nome
            stm.setFloat(2, produto.getVenda());//grava R$ venda
            stm.setFloat(3, produto.getCusto());//grava R$ custo
            stm.setBytes(4,img.getArrayBytesImagem(produto.getUrl_imagem()));//grava a imagem
            stm.setBoolean(5,produto.isDisponivel());//grava se é disponível
            stm.setInt(6,produto.getEstoque());            //grava estoque
            stm.setInt(7,produto.getTipo_produto().getCodigo_tipo());//grava o tipo de prato
            stm.setString(8, produto.getUrl_imagem());
            stm.execute();//executa  o statement
            stm.close();//fecha
           }catch(Exception e){
           JOptionPane.showMessageDialog(null, "Erro no banco");
            }
    }

    public ResultSet getDadosTabela(String sql) throws SQLException{

  
         conn = ConexaoBancoDados.getConexaoMySql();
           PreparedStatement stm = (PreparedStatement) conn.prepareStatement(sql);
           ResultSet rs = stm.executeQuery();
           return rs;
    }

    public void EditarProdutos(Produto prod){
        try{

            this.conn = ConexaoBancoDados.getConexaoMySql();

            String sql = "Update produtos set nome = ?," +
                    " valor_venda = ?," +
                    " valor_custo = ?," +
                    " foto = ?," +
                    " prod_avenda = ?," +
                    " estoque = ?," +
                    " fk_tipo_produto = ?," +
                    " url = ? " +
                    " where id_produtos = ? ";

            PreparedStatement stm = (PreparedStatement) conn.prepareStatement(sql);

            stm.setString(1, prod.getNome());
            stm.setFloat(2, prod.getVenda());
            stm.setFloat(3, prod.getCusto());
            stm.setBytes(4, img.getArrayBytesImagem(prod.getUrl_imagem()));
            stm.setBoolean(5, prod.isDisponivel());
            stm.setInt(6, prod.getEstoque());
            stm.setInt(7,prod.getTipo_produto().getCodigo_tipo());
            stm.setString(8, prod.getUrl_imagem());
            stm.setInt(9, prod.getCodigo_prod());

            stm.execute();
            stm.close();

        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }

}
